﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dimok.Shared.Web;

namespace Dimok.Web {

  ////////////////////////////////////////////////////////////////////////////////////////////////////
  /// <summary>	Interface for profiler. </summary>
  ///
  /// <remarks>	Dimon, 12/21/2010. </remarks>
  ////////////////////////////////////////////////////////////////////////////////////////////////////

  public interface IProfiler {
    Dictionary<string, Dimok.Shared.Web.UserSettings.Page.Grid.Report.Sort> Sorts_Add(string reportName, Dictionary<string, Dimok.Shared.ListSortDirection> sortExpressions);
    void Filters_Add(string ReportName, Dictionary<string, Dimok.Shared.Filtering.FilterQuery> FilterExpressions);
    void Details_Sync();
    Dimok.Shared.Web.UserSettings.Page.Grid.Report Report(string ReportName);
		UserSettings.Page.Grid.Report[] Reports();
		string[] ReportNames();
		void Save();
		void Save(string reportName);
    IProfiler Initialize(string pageType, string controlID);

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the page. </summary>
		///
		/// <value>	The page. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		Dimok.Shared.Web.UserSettings.Page Page { get; }

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Gets the grid. </summary>
		///
		/// <value>	The grid. </value>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		Dimok.Shared.Web.UserSettings.Page.Grid Grid { get; }
	}
}
